/* Returns the smallest w that is a valid value for a minimal density code
   and will accept k as the number of drives. */
int R6_Min_Density_Smallest_W(int k);

/* Creates and returns a Gen_T object that contains a minimal density
   matrix given k and w. */
JER_Gen_T *R6_Min_Density_Generator(int k, int w);
/* Modifies an existing Gen_T object to contain a minimal density
   matrix given k and w. */
int R6_Min_Density_Generator(int k, int w, JER_Gen_T &g);

/* Returns the smallest legal w for a generalized evenodd algorithm given 
   k and w. */
int Gen_Evenodd_Smallest_W(int k, int m);

/* Creates a Gen_T object that contains a matrix for doing generalized evenodd
   coding. */
JER_Gen_T *Gen_Evenodd_Generator(int k, int m, int w);
/* Modifies an existing Gen_T object to contain an evenodd coding generator. */
int Gen_Evenodd_Generator(int k, int m, int w, JER_Gen_T &g);

/* Creates a generator object for generalized RDP. */
JER_Gen_T *Gen_RDP_Generator(int k, int m, int w);
/* Modifies an existing generator object to do generalized RDP. */
int Gen_RDP_Generator(int k, int m, int w, JER_Gen_T &g);
